package com.example.config;

import feign.Logger;
import org.springframework.context.annotation.Bean;

/**
 * OpenFeign 提供了日志打印功能，我们可以通过配置调整日志级别，Feign 为每一个 FeignClient 都提供了一个 feign.Logger 实例，通过它可以对 OpenFeign 服务绑定接口的调用情况进行监控。
 * configuration是配置Feign配置类，在配置类中可以自定义Feign的Encoder、Decoder、LogLevel、Contract等。
 * OpenFeign 日志打印功能的开启方式比较简单，
 *
 */

// 不要添加@Configuration,不然会被作为全局配置文件共享, 需要在feignclient 接口类的注解上 添加该类  @FeignClient(value = "MICROSERVICE-CLOUD-OPENFEIGN",configuration = FeignConfiguration.class)  //FeignConfiguration OpenFeign 日志增强
public class FeignConfiguration {
    /**
     * OpenFeign 日志增强
     * 配置 OpenFeign 记录哪些内容
     * 该配置的作用是通过配置的 Logger.Level 对象告诉 OpenFeign 记录哪些日志内容。
     * Logger.Level 的具体级别如下：
     * NONE：不记录任何信息。
     *
     * BASIC：仅记录请求方法、URL 以及响应状态码和执行时间。
     *
     * HEADERS：除了记录 BASIC 级别的信息外，还会记录请求和响应的头信息。
     *
     * FULL：记录所有请求与响应的明细，包括头信息、请求体、元数据等等。
     */
    @Bean
    public Logger.Level feginLoggerLevel(){
        return Logger.Level.FULL;
    }

    // Contract,feignDecoder,feignEncoder.....
}
